﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DomainDriver.DomainModeling.DomainObjects
{
    public interface IValueObject<VALUE_OBJECT> : IDomainObject<VALUE_OBJECT>
    {
        IEqualityComparer<VALUE_OBJECT> ValueWiseComparer { get; }

        VALUE_OBJECT CopyNew();
        void CopyValuesTo(VALUE_OBJECT receivingObject);
        bool EqualsValues(VALUE_OBJECT otherObject);
    }
}